<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>test2</title>
  </head>

  <body>
    <button id="btn">随机数</button>
    <!-- 随机生成十个数字1-100 不重复的  添加到一个数组里 ，最后变成一个二维数组，[[1,2,9],[10,11,12,19],[20,21,29]] 10以内一个数组，10-20一个数组，    -->
    <script>
      // 声明不要用连等
      let arr = [],
        newArr = []
      let ten1 = [],
        ten2 = [],
        ten3 = [],
        ten4 = [],
        ten5 = [],
        ten6 = [],
        ten7 = [],
        ten8 = [],
        ten9 = [],
        ten0 = []
      let btn = getId('btn')
      function getId(e) {
        return document.getElementById(e)
      }
      function getRan() {
        let cc = Math.floor(Math.random() * 99 + 1)
        if (arr.indexOf(cc) == -1) {
          arr.push(cc)
          if (arr.length < 10) {
            arguments.callee()
          } else {
            return arr
          }
        } else {
          arguments.callee()
        }

        // console.log(arr)
        return arr
      }
      let res = getRan()
      console.log(res)
      for (let item of res) {
        // toString(42).lengtth ==  18
        let str = item + ''
        if (str.length > 1) {
          //两位数  然后根据 十位 判断去哪个数组
          switch (str.charAt(0) - 0) {
            case 1:
              ten1.push(str - 0)
              break
            case 2:
              ten2.push(str - 0)

              break
            case 3:
              ten3.push(str - 0)

              break
            case 4:
              ten4.push(str - 0)

              break
            case 5:
              ten5.push(str - 0)

              break
            case 6:
              ten6.push(str - 0)
              break
            case 7:
              ten7.push(str - 0)
              break
            case 8:
              ten8.push(str - 0)
              break
            case 9:
              ten9.push(str - 0)
              break
          }
        } else {
          // 一位数
          ten0.push(str - 0)
        }
      }
      // 第一种 先添加再过滤    //map 是对数组每一项加工，再返回item ,  如果需要返回的数组少了几项最好不用它。

      newArr.push(ten0, ten1, ten2, ten3, ten4, ten5, ten6, ten7, ten8, ten9)
      //把空数组过滤掉
      let aaa = newArr.filter(item => item.length !== 0)
      console.log(aaa)
      // 第二种 筛选完再追加
      let newArr2 = []
      function quKong() {
        for (let i = 0; i < arguments.length; i++) {
          if (arguments[i].length != 0) {
            newArr2.push(arguments[i])
          }
        }
      }
      quKong(ten0, ten1, ten2, ten3, ten4, ten5, ten6, ten7, ten8, ten9)
      console.log(newArr2)

      // test
      let abc = [[1, 2, 3], [], [4, 5], [], [1], [2, 3, 66], [], [], [1], [9]]
      let ddd = []
      for (let c = 0; c < abc.length; c++) {
        if (abc[c].length !== 0) {
          ddd.push(abc[c])
        }
      }
      console.log(ddd)
      //错误实例：
      // abc.forEach((item,index)=>{
      //     if(item.length==0) {
      //         abc.splice(index,1)               // 循环(for,forEach) splice删除索引，会导致错乱，常常发生在满足删除条件相邻下，，，如果非要用  就从尾部开始循环。。。不从0开始；  或者追加新数组里
      //     }
      // })
    </script>
  </body>
</html>
